Programming Environments for Novices
نویسنده
چکیده
The task of specializing programming environments for novices begins with the recognition that programming is a hard skill to learn. The lack of student programming skill even after a year of undergraduate studies in computer science was noted and measured in the early 80’s [32] and again in this decade [20]. We know that students have problems with looping constructs [31], conditionals [8], and assembling programs out of base components [33]—and there are probably other factors, and interactions between these factors, too. What are the critical pieces? What pieces, if we “fixed” them (made them better for novice programmers), would make programming into a more manageable, learnable skill? If we developed a language that changed how conditionals work or loops, or make it easier to integrate components, would programming become easier? That’s the issue that developers of educational programming environments are asking. Each novice programming environment (or family of environments) is attempting to answer the question, “What makes programming hard?” Each answer to that question implies a family of environments that address the concern with a set of solutions. Each environment discussed in this chapter attempts to use several of these answers to make programming easier for novices. Obviously, there are a great many answers to the question “What makes programming hard?” For each answer, there are a great many potential environments that act upon that answer, and then there are a great many other potential environments that deal with multiple answers to that question. That’s not surprising, since it’s almost certainly true that there is no one correct answer to the question that applies to all people. Not all of these potential environments have been built and explored, however. The field of Computer Science Education Research is too new, and there are too few people doing work in this field. We are still in the stage of the field of identifying
منابع مشابه
How Block-based Languages Support Novices A Framework for Categorizing Block-based Affordances
The ability to express ideas in a computationally meaningful way is becoming increasingly important in our technological world. In response to the growing importance of computational literacy skills, new intuitive and accessible programming environments are being designed. This paper presents a framework for classifying the ways that block-based introductory programming environments support nov...
متن کاملSituating Programming Abstractions in a Constructionist Video Game
Research on the effectiveness of introductory programming environments often relies on post-test measures and attitudinal surveys to support its claims; but such instruments lack the ability to identify any explanatory mechanisms that can account for the results. This paper reports on a study designed to address this issue. Using Noss and Hoyles’ constructs of webbing and situated abstractions,...
متن کاملGenerative art for all
Background: Generative art is created by a system that operates autonomously, or semi-autonomously, rather than directly by the artist. The artist creates the system and establishes parameters that affect the outcome, but the outcome itself emerges from the system rather than from the artist. Generative art systems are frequently computer programs, although biological, social, or other systems ...
متن کاملHow People Naturally Describe Robot Behaviour
Existing novice robot programming systems are complex, which ironically makes them unsuitable for novices. We have analysed 19 reports of robot projects to inform development of an ontology of critical concepts that end user robot programming environments must include. This is a first step to simpler end user robot programming systems.
متن کاملOnline Pair-Programming for Learning Programming of Novices
The purpose of this study is to determine the effects of online pair programming for novices. This paper describes two system designs for online pair programming: real-time synchronous pair programming and non-real-time asynchronous pair programming. An experiment was conducted to test the feasibility of online pair programming, using Squeak eToys as an educational programming language. Nebrask...
متن کامل